#ifndef __PARTICLE_CONST_H__
#define __PARTICLE_CONST_H__

#include "Eigen/Dense"

#define PROGRAM_USE_CPU_PIXELBUFFER false

#define FILE_OPENCL			"demo.cl"

#define DMAX	(40)	//dM - 40mm
#define Dmax	(10)	//dm - 10mm
#define LAMDA	(20)
#define LAMDA_K	(10)

//Chia 64 particles thanh 8 groups de ve cho vua man hinh
//Voi size to 128*128*64 can su dung ki thuat off-screen render
#define SIZE_IMAGE_PARTICLE_WIDTH		128
#define SIZE_IMAGE_PARTICLE_HEIGHT		128
#define NUM_TOTAL_PARTICLES				64

#define K_WINDOWS_WIDTH					640
#define K_WINDOWS_HEIGHT				480

#define OFFSET_WRIST	0	//+3 wirst_Rotation
#define OFFSET_THUMB	6	//+4 thumb_ROTATION
#define OFFSET_FINGER1	10
#define OFFSET_FINGER2	14
#define OFFSET_FINGER3	18
#define OFFSET_LITTLE	22
#define K_NUM_DOF		26

#define vPOS_WRIST		0
#define vPOS_THUMB		6
#define vPOS_FINGER1	10
#define vPOS_FINGER2	13
#define vPOS_FINGER3	16
#define vPOS_LITTLE		19
#define vPOS_DOF		22

struct HypothesisX
{
	float dofData[26];
};

struct Hypothesis
{
	float wirst_Position[3];
	float wirst_Rotation[3];
	float thumb_Rotation[4];
	float finger1_Rotation[4];
	float finger2_Rotation[4];
	float finger3_Rotation[4];
	float little_Rotation[4];
};


#endif